﻿#include "lvgl_laohuangli_anim.h"
#include "lvgl_Project.h"




void lvgl_laohuangli_anim_roll_win_cb(void* arc, lv_anim_value_t v)
{
    lv_obj_set_y(arc, v);
}

void lvgl_laohuangli_anim_roll_win_ready_cb(lv_anim_t* anim)
{

    lvgl_laohuangli_anim_debug("anim in ready");
}

void lvgl_laohuangli_anim_roll_win_start(int targetpos)
{
#if LVGL_ANIM_SWITCH

    lvgl_laohuangli_anim_debug("anim in start");

    lv_anim_path_init(&lvgl_laohuangli_data.anim_path_roll_win);
    lv_anim_path_set_cb(&lvgl_laohuangli_data.anim_path_roll_win, lv_anim_path_ease_out);
    //lv_anim_path_linear线性动画
    //lv_anim_path_step最后一步更改
    //lv_anim_path_ease_in开头很慢
    //lv_anim_path_ease_out最后慢
    //lv_anim_path_ease_in_out在开始和结束时也很慢
    //lv_anim_path_overshoot超出最终值
    //lv_anim_path_bounce从最终值反弹一点（就像撞墙一样）


    lv_anim_init(&lvgl_laohuangli_data.anim_roll_win);


    lv_anim_set_exec_cb(&lvgl_laohuangli_data.anim_roll_win, lvgl_laohuangli_anim_roll_win_cb);
    lv_anim_set_ready_cb(&lvgl_laohuangli_data.anim_roll_win, lvgl_laohuangli_anim_roll_win_ready_cb);
    lv_anim_set_values(&lvgl_laohuangli_data.anim_roll_win, lv_obj_get_y(lvgl_laohuangli_data.cont_roll), targetpos);
    lv_anim_set_time(&lvgl_laohuangli_data.anim_roll_win, 1000);
    lv_anim_set_var(&lvgl_laohuangli_data.anim_roll_win, lvgl_laohuangli_data.cont_roll);

    lv_anim_set_path(&lvgl_laohuangli_data.anim_roll_win, &lvgl_laohuangli_data.anim_path_roll_win);
    lv_anim_start(&lvgl_laohuangli_data.anim_roll_win);

#else


    lvgl_laohuangli_anim_roll_win_ready_cb(NULL);
    lv_obj_set_y(lvgl_laohuangli_data.cont_main, targetpos);
#endif

}


void lvgl_laohuangli_anim_in_cb(void* arc, lv_anim_value_t v)
{
    lv_obj_set_y(arc, v);
}

void lvgl_laohuangli_anim_in_ready_cb(lv_anim_t* anim)
{

    lvgl_laohuangli_anim_debug("anim in ready");


	//lvgl_laohuangli_DongHua_Jin();


    lvgl_group_add_obj(&lvgl_laohuangli_data.cont_main);
    lvgl_group_focus_obj(&lvgl_laohuangli_data.cont_main);
    lvgl_send_event(&lvgl_laohuangli_data.cont_main, CZ_EVENT_ANIM_IN_READY, NULL);



}

void lvgl_laohuangli_anim_in_start(int mode, int time)
{
#if LVGL_ANIM_SWITCH

    if(&lvgl_laohuangli_data.anim_in)
    {
        lvgl_laohuangli_anim_debug("close last anim");
        lvgl_laohuangli_anim_in_ready_cb(NULL);
    }


    lvgl_laohuangli_anim_debug("anim in start");


    lv_anim_path_init(&lvgl_laohuangli_data.anim_path_in);
    lv_anim_path_set_cb(&lvgl_laohuangli_data.anim_path_in, LVGL_ANIM_IN_PATH);
    //lv_anim_path_linear线性动画
    //lv_anim_path_step最后一步更改
    //lv_anim_path_ease_in开头很慢
    //lv_anim_path_ease_out最后慢
    //lv_anim_path_ease_in_out在开始和结束时也很慢
    //lv_anim_path_overshoot超出最终值
    //lv_anim_path_bounce从最终值反弹一点（就像撞墙一样）


    lv_anim_init(&lvgl_laohuangli_data.anim_in);


    lv_anim_set_exec_cb(&lvgl_laohuangli_data.anim_in, lvgl_laohuangli_anim_in_cb);
    lv_anim_set_ready_cb(&lvgl_laohuangli_data.anim_in, lvgl_laohuangli_anim_in_ready_cb);
    lv_anim_set_values(&lvgl_laohuangli_data.anim_in, lv_obj_get_y(lvgl_laohuangli_data.cont_main), 0);
    lv_anim_set_time(&lvgl_laohuangli_data.anim_in, LVGL_ANIM_IN_TIME);
    lv_anim_set_var(&lvgl_laohuangli_data.anim_in, lvgl_laohuangli_data.cont_main);

    lv_anim_set_path(&lvgl_laohuangli_data.anim_in, &lvgl_laohuangli_data.anim_path_in);
    lv_anim_start(&lvgl_laohuangli_data.anim_in);

#else
    lvgl_laohuangli_anim_in_ready_cb(NULL);
    lv_obj_set_pos(lvgl_laohuangli_data.cont_main, 0, 0);
#endif

}


void lvgl_laohuangli_anim_out_cb(void* arc, lv_anim_value_t v)
{
    lv_obj_set_y(arc, v);
}
void lvgl_laohuangli_anim_out_ready_cb(lv_anim_t* anim)
{

    lvgl_laohuangli_anim_debug("anim out ready");

    lvgl_send_event(&lvgl_laohuangli_data.cont_main, CZ_EVENT_ANIM_OUT_READY, NULL);
    lvgl_laohuangli_close();
}

void lvgl_laohuangli_anim_out_start(int mode, int time)
{

    lvgl_group_remove_obj(&lvgl_laohuangli_data.cont_main);

#if LVGL_ANIM_SWITCH



    lvgl_laohuangli_anim_debug("anim out start");


    lv_anim_path_init(&lvgl_laohuangli_data.anim_path_out);
    lv_anim_path_set_cb(&lvgl_laohuangli_data.anim_path_out, LVGL_ANIM_OUT_PATH);
    //lv_anim_path_linear线性动画
    //lv_anim_path_step最后一步更改
    //lv_anim_path_ease_in开头很慢
    //lv_anim_path_ease_out最后慢
    //lv_anim_path_ease_in_out在开始和结束时也很慢
    //lv_anim_path_overshoot超出最终值
    //lv_anim_path_bounce从最终值反弹一点（就像撞墙一样）


    lv_anim_init(&lvgl_laohuangli_data.anim_out);
    lv_anim_set_exec_cb(&lvgl_laohuangli_data.anim_out, lvgl_laohuangli_anim_out_cb);
    lv_anim_set_ready_cb(&lvgl_laohuangli_data.anim_out, lvgl_laohuangli_anim_out_ready_cb);
    lv_anim_set_values(&lvgl_laohuangli_data.anim_out, lv_obj_get_y(lvgl_laohuangli_data.cont_main), lv_obj_get_height(lv_scr_act()));
    lv_anim_set_time(&lvgl_laohuangli_data.anim_out, LVGL_ANIM_OUT_TIME);
    lv_anim_set_var(&lvgl_laohuangli_data.anim_out, lvgl_laohuangli_data.cont_main);

    lv_anim_set_path(&lvgl_laohuangli_data.anim_out, &lvgl_laohuangli_data.anim_path_out);
    lv_anim_start(&lvgl_laohuangli_data.anim_out);

#else


    lvgl_laohuangli_anim_out_ready_cb(NULL);

#endif

}










void lvgl_laohuangli_anim_WuXing_cb(void * arc, lv_anim_value_t v)
{
	lv_obj_set_x(arc, v);
}
void lvgl_laohuangli_anim_ChongSha_cb(void * arc, lv_anim_value_t v)
{
	lv_obj_set_x(arc, v);
}
void lvgl_laohuangli_anim_Yi_cb(void * arc, lv_anim_value_t v)
{
	lv_obj_set_x(arc, v);
}
void lvgl_laohuangli_anim_Ji_cb(void * arc, lv_anim_value_t v)
{
	lv_obj_set_x(arc, v);
}
void lvgl_laohuangli_anim_JiShenYiQu_cb(void * arc, lv_anim_value_t v)
{
	lv_obj_set_x(arc, v);
}
void lvgl_laohuangli_anim_XiongShenYiJi_cb(void * arc, lv_anim_value_t v)
{
	lv_obj_set_x(arc, v);
}



//滑入动画
void lvgl_laohuangli_DongHua_Jin(void)
{
	lv_anim_path_t path;
	lv_anim_path_init(&path);
	lv_anim_path_set_cb(&path, lv_anim_path_ease_out);
	//lv_anim_path_linear线性动画
	//lv_anim_path_step最后一步更改
	//lv_anim_path_ease_in开头很慢
	//lv_anim_path_ease_out最后慢
	//lv_anim_path_ease_in_out在开始和结束时也很慢
	//lv_anim_path_overshoot超出最终值
	//lv_anim_path_bounce从最终值反弹一点（就像撞墙一样）


	lv_obj_set_x(lvgl_laohuangli_data.WuXing_cont, lv_obj_get_width(lvgl_laohuangli_data.cont_main));
	lv_obj_set_x(lvgl_laohuangli_data.ChongSha_cont, lv_obj_get_width(lvgl_laohuangli_data.cont_main));
	lv_obj_set_x(lvgl_laohuangli_data.Yi_cont, lv_obj_get_width(lvgl_laohuangli_data.cont_main));
	lv_obj_set_x(lvgl_laohuangli_data.Ji_cont, lv_obj_get_width(lvgl_laohuangli_data.cont_main));
	lv_obj_set_x(lvgl_laohuangli_data.JiShenYiQu_cont, lv_obj_get_width(lvgl_laohuangli_data.cont_main));
	lv_obj_set_x(lvgl_laohuangli_data.XiongShenYiJi_cont, lv_obj_get_width(lvgl_laohuangli_data.cont_main));

	lv_anim_init(&lvgl_laohuangli_data.lv_anim_WuXing);
	lv_anim_set_exec_cb(&lvgl_laohuangli_data.lv_anim_WuXing, lvgl_laohuangli_anim_WuXing_cb);
	lv_anim_set_values(&lvgl_laohuangli_data.lv_anim_WuXing, 250,0);
	lv_anim_set_time(&lvgl_laohuangli_data.lv_anim_WuXing, 500);
	lv_anim_set_var(&lvgl_laohuangli_data.lv_anim_WuXing, lvgl_laohuangli_data.WuXing_cont);
	lv_anim_set_path(&lvgl_laohuangli_data.lv_anim_WuXing, &path);
	lv_anim_start(&lvgl_laohuangli_data.lv_anim_WuXing);


	lv_anim_init(&lvgl_laohuangli_data.lv_anim_ChongSha);
	lv_anim_set_exec_cb(&lvgl_laohuangli_data.lv_anim_ChongSha, lvgl_laohuangli_anim_ChongSha_cb);
	lv_anim_set_values(&lvgl_laohuangli_data.lv_anim_ChongSha, 250, 0);
	lv_anim_set_time(&lvgl_laohuangli_data.lv_anim_ChongSha, 700);
	lv_anim_set_var(&lvgl_laohuangli_data.lv_anim_ChongSha, lvgl_laohuangli_data.ChongSha_cont);
	lv_anim_set_path(&lvgl_laohuangli_data.lv_anim_ChongSha, &path);
	lv_anim_start(&lvgl_laohuangli_data.lv_anim_ChongSha);




	lv_anim_init(&lvgl_laohuangli_data.lv_anim_Yi);
	lv_anim_set_exec_cb(&lvgl_laohuangli_data.lv_anim_Yi, lvgl_laohuangli_anim_Yi_cb);
	lv_anim_set_values(&lvgl_laohuangli_data.lv_anim_Yi, 250, 0);
	lv_anim_set_time(&lvgl_laohuangli_data.lv_anim_Yi, 900);
	lv_anim_set_var(&lvgl_laohuangli_data.lv_anim_Yi, lvgl_laohuangli_data.Yi_cont);
	lv_anim_set_path(&lvgl_laohuangli_data.lv_anim_Yi, &path);
	lv_anim_start(&lvgl_laohuangli_data.lv_anim_Yi);

	lv_anim_init(&lvgl_laohuangli_data.lv_anim_Ji);
	lv_anim_set_exec_cb(&lvgl_laohuangli_data.lv_anim_Ji, lvgl_laohuangli_anim_Ji_cb);
	lv_anim_set_values(&lvgl_laohuangli_data.lv_anim_Ji, 250, 0);
	lv_anim_set_time(&lvgl_laohuangli_data.lv_anim_Ji, 1000);
	lv_anim_set_var(&lvgl_laohuangli_data.lv_anim_Ji, lvgl_laohuangli_data.Ji_cont);
	lv_anim_set_path(&lvgl_laohuangli_data.lv_anim_Ji, &path);
	lv_anim_start(&lvgl_laohuangli_data.lv_anim_Ji);

	lv_anim_init(&lvgl_laohuangli_data.lv_anim_JiShenYiQu);
	lv_anim_set_exec_cb(&lvgl_laohuangli_data.lv_anim_JiShenYiQu, lvgl_laohuangli_anim_JiShenYiQu_cb);
	lv_anim_set_values(&lvgl_laohuangli_data.lv_anim_JiShenYiQu, 250, 0);
	lv_anim_set_time(&lvgl_laohuangli_data.lv_anim_JiShenYiQu, 1100);
	lv_anim_set_var(&lvgl_laohuangli_data.lv_anim_JiShenYiQu, lvgl_laohuangli_data.JiShenYiQu_cont);
	lv_anim_set_path(&lvgl_laohuangli_data.lv_anim_JiShenYiQu, &path);
	lv_anim_start(&lvgl_laohuangli_data.lv_anim_JiShenYiQu);

	lv_anim_init(&lvgl_laohuangli_data.lv_anim_XiongShenYiJi);
	lv_anim_set_exec_cb(&lvgl_laohuangli_data.lv_anim_XiongShenYiJi, lvgl_laohuangli_anim_XiongShenYiJi_cb);
	lv_anim_set_values(&lvgl_laohuangli_data.lv_anim_XiongShenYiJi, 250, 0);
	lv_anim_set_time(&lvgl_laohuangli_data.lv_anim_XiongShenYiJi, 1200);
	lv_anim_set_var(&lvgl_laohuangli_data.lv_anim_XiongShenYiJi, lvgl_laohuangli_data.XiongShenYiJi_cont);
	lv_anim_set_path(&lvgl_laohuangli_data.lv_anim_XiongShenYiJi, &path);
	lv_anim_start(&lvgl_laohuangli_data.lv_anim_XiongShenYiJi);





}
//滑出动画
void lvgl_laohuangli_DongHua_Chu(void)
{

	lv_anim_init(&lvgl_laohuangli_data.lv_anim_WuXing);
	lv_anim_set_exec_cb(&lvgl_laohuangli_data.lv_anim_WuXing, lvgl_laohuangli_anim_WuXing_cb);
	lv_anim_set_values(&lvgl_laohuangli_data.lv_anim_WuXing, 0, -(lv_obj_get_width(lvgl_laohuangli_data.cont_main)));
	lv_anim_set_time(&lvgl_laohuangli_data.lv_anim_WuXing, 200);
	lv_anim_set_var(&lvgl_laohuangli_data.lv_anim_WuXing, lvgl_laohuangli_data.WuXing_cont);
	lv_anim_start(&lvgl_laohuangli_data.lv_anim_WuXing);


	lv_anim_init(&lvgl_laohuangli_data.lv_anim_ChongSha);
	lv_anim_set_exec_cb(&lvgl_laohuangli_data.lv_anim_ChongSha, lvgl_laohuangli_anim_ChongSha_cb);
	lv_anim_set_values(&lvgl_laohuangli_data.lv_anim_ChongSha, 0, -(lv_obj_get_width(lvgl_laohuangli_data.cont_main)));
	lv_anim_set_time(&lvgl_laohuangli_data.lv_anim_ChongSha, 300);
	lv_anim_set_var(&lvgl_laohuangli_data.lv_anim_ChongSha, lvgl_laohuangli_data.ChongSha_cont);
	lv_anim_start(&lvgl_laohuangli_data.lv_anim_ChongSha);




	lv_anim_init(&lvgl_laohuangli_data.lv_anim_Yi);
	lv_anim_set_exec_cb(&lvgl_laohuangli_data.lv_anim_Yi, lvgl_laohuangli_anim_Yi_cb);
	lv_anim_set_values(&lvgl_laohuangli_data.lv_anim_Yi, 0, -(lv_obj_get_width(lvgl_laohuangli_data.cont_main)));
	lv_anim_set_time(&lvgl_laohuangli_data.lv_anim_Yi, 400);
	lv_anim_set_var(&lvgl_laohuangli_data.lv_anim_Yi, lvgl_laohuangli_data.Yi_cont);
	lv_anim_start(&lvgl_laohuangli_data.lv_anim_Yi);

	lv_anim_init(&lvgl_laohuangli_data.lv_anim_Ji);
	lv_anim_set_exec_cb(&lvgl_laohuangli_data.lv_anim_Ji, lvgl_laohuangli_anim_Ji_cb);
	lv_anim_set_values(&lvgl_laohuangli_data.lv_anim_Ji, 0, -(lv_obj_get_width(lvgl_laohuangli_data.cont_main)));
	lv_anim_set_time(&lvgl_laohuangli_data.lv_anim_Ji, 500);
	lv_anim_set_var(&lvgl_laohuangli_data.lv_anim_Ji, lvgl_laohuangli_data.Ji_cont);
	lv_anim_start(&lvgl_laohuangli_data.lv_anim_Ji);

	lv_anim_init(&lvgl_laohuangli_data.lv_anim_JiShenYiQu);
	lv_anim_set_exec_cb(&lvgl_laohuangli_data.lv_anim_JiShenYiQu, lvgl_laohuangli_anim_JiShenYiQu_cb);
	lv_anim_set_values(&lvgl_laohuangli_data.lv_anim_JiShenYiQu, 0, -(lv_obj_get_width(lvgl_laohuangli_data.cont_main)));
	lv_anim_set_time(&lvgl_laohuangli_data.lv_anim_JiShenYiQu, 600);
	lv_anim_set_var(&lvgl_laohuangli_data.lv_anim_JiShenYiQu, lvgl_laohuangli_data.JiShenYiQu_cont);
	lv_anim_start(&lvgl_laohuangli_data.lv_anim_JiShenYiQu);

	lv_anim_init(&lvgl_laohuangli_data.lv_anim_XiongShenYiJi);
	lv_anim_set_exec_cb(&lvgl_laohuangli_data.lv_anim_XiongShenYiJi, lvgl_laohuangli_anim_XiongShenYiJi_cb);
	lv_anim_set_values(&lvgl_laohuangli_data.lv_anim_XiongShenYiJi, 0, -(lv_obj_get_width(lvgl_laohuangli_data.cont_main)));
	lv_anim_set_time(&lvgl_laohuangli_data.lv_anim_XiongShenYiJi, 700);
	lv_anim_set_var(&lvgl_laohuangli_data.lv_anim_XiongShenYiJi, lvgl_laohuangli_data.XiongShenYiJi_cont);
	lv_anim_start(&lvgl_laohuangli_data.lv_anim_XiongShenYiJi);


}
